🎨 自定义图解模板
对于一些内置图解模板库没有提供的图解模板,用户可以选择自定义图解模板。通过自定义图解模板,最终打包成图解模板包,可以快捷分享给其他科研人员使用。
也可以选择上传到我们的社区以开源共享,或者提供给开发者以添加到内置模板库。我们非常感谢任何参与贡献的任何人员。
需要注意的是,目前图解模板社区平台仍在规划中,将会在叫后期才会部署陕上线,敬请期待。
新建图解模板
现在我们可以通过通过菜单栏的 文件-> 新建绘图模板 进行图解模板自定义,如下图所示:

在点击【新建绘图模板】后,会出现新建图解模板弹窗:

对于一个新建的自定义图解模板,主要是设置三个部分:
-
图解模板默认支持的语言:你可以通过右侧的选择框中选择内置的语言快捷选项,我们提供了:简体中文,繁体中文,美式英文,日语,俄语,韩语,德语和西班牙语。当然你也可以选择手动输入语言代码来实现语言设定。具体的语言代码参考:Table of Language Culture Names
需要注意的是:在默认支持的语言中,第一个输入的语言将会是该图解的默认语言,当其他语言没有被翻译或者出现错误的时候,会回退到默认语言状态下。
-
图解模板的分类(层级)结构:同样的,我们也提供了一些内置的快捷分类结构。这个选项将会影响你的图解模板在图解模板列表中的层级结构。
-
图解模板的类型:目前支持两种类型:二维坐标系和三元图。
在完成设置后,点击【确定】,即可进入自定义绘图界面。接下来,我们主要将操作集中在【编辑】功能栏中。点击【编辑】后,系统会弹出编辑图解的二次确认对话框。确认无误后,即可进入编辑模式,查看并使用编辑功能栏中的各项工具。

自定义图解模板
在编辑功能栏下,我们允许

- 保存:保存图解模板。点击图解模板后,程序默认会根据当前绘图状态,生成对应的图解缩略图。
- 另存为:将图解模板另存为别的文件位置。
- 添加线条:启用后,进入添加线条模式。通过在绘图区域,点击第一个点创建线条的第一个点,接着创建第二个点最终形成线条对象。
- 添加文本:注释也成为文本,启用后,进入添加文本模式。点击绘图中指定的位置即可创建。默认的注释文本为
Text,修改文本位置或者内容,也是从图层面板的属性位置进行修改。 - 添加多边形:启用后,进入添加多边形模式。添加一个闭合的多边形,通过左键连续点击创建点,右键闭合图形。
- 添加箭头:启用后,进入添加箭头模式。添加规则类似于线条。
- 添加函数:点击后,默认直接添加一个默认的函数:
sin(x),定义域范围是 [-10,10]。你可以在属性面板中对应的属性自定义自己的函数。 - 撤销/重做:如果在没有创建绘图对象或删除绘图对象,是不可点击的。默认只存储 10 个操作历史。
- 删除:删除绘图对象。首先选中绘图对象(例如:文本),然后点击删除即可触发删除绘图对象。
添加线条
如下是一个添加线条的属性面板示例,通过属性面板可以对线条的位置和其他属性进行精细化的调整。
每个坐标上方的的定位图标按钮,触发后,可以在绘图区域重新调整捕获坐标。即在绘图区域要获取坐标的位置,左键点击后会自动设置位置为点击的位置。

添加多边形
如下是一个添加多边形的属性面板示例。对于多边形对象拥有一个顶点列表。当删除多边形顶点的时候会出现弹窗二次确认删除。你可以通过按住 ctrl 按键的情况下,左键点击删除按钮,即可连续删除顶点。

添加文本
如下是一个添加文本属性面板的示例。对于文本对象,默认情况下,添加的文本会使用新建图解模板的时候,设定的第一个语言,即默认语言作为默认的内容。
由于图解是原生支持多语言的,对于文本的多语言内容设置将会在后面说明。

添加函数
如下是一个添加函数属性面板的示例。添加函数默认使用 sin(x) 作为示例。我们只需要输入关于 x 相关的公式即可。默认是y=Formula的内容。
对于一个函数对象,最重要的两个参数就是:定义域和采样点。定义域将会规定函数的显示范围。采样点将会控制函数对象绘制的精细程度。进而影响鼠标吸附选中算法的精细程度。默认值是 1000。

完整模板
在完成基础的图解图形绘制后,一个完整的模板还需要具备:
- 脚本设置:规定图解模板的输入数据,以及数据计算投图算法
- 指南编写:图解的图解指南文档
- 多语言:图解如果设定支持的语言是多语言,则需要补充多语言的部分。多语言包括图解内的文本多语言和图解指南文档的多语言。
脚本设置
脚本设置是投图中重要的环节,他规定了自定义的投图逻辑是什么。
一共需要两个参数:图解变量参数和计算脚本。如下图所示:

脚本默认使用 JavaScript 语言编写。关于 JavaScript 的一些基本语法可以查看相关内容,此处不过多赘述。
对于数据参数,即数据列表中需要读取哪些列的数据。输入的规则是以英文, 为分隔。
**现在默认的情况下第一个参数可以选择填写Group**变量,即组别。如果不添加,程序也会在后台添加该变量。该列的作用是他会在投图的时候区分不同的数据点分类,进而影响图例的类别展示。剩下的参数需要根据自定义的底图所需进行。
对于脚本内容,就是在上述的数据参数(即预定义的变量),编写相关计算算法,返回最终的 [x,y] 值来实现点在图解上的投影。
例如:对于 TAS 图解的参数应该填写:SiO2,Na2O,K2O。脚本内容如下:
// 使用变量 K2O + Na2O 计算
var result1 = K2O + Na2O;
// 使用 SiO2 计算
var result2 = SiO2;
// 返回两个计算值,需要注意的是对于默认的二维坐标轴图像返回值只有两个
// 第一个位置代表了 X 的返回值,第二个位置是 Y 的返回值。
[result2, result1]
当然,你也可以把上述脚本直接写为如下也是一样的:
var result = K2O + Na2O
[SiO2, result]
需要注意的是,返回值的位置是不可更改的。[x,y],第一个位置返回将会是 X 的值(即底部坐标轴的值),第二个位置返回将会是 Y 的值(即左侧坐标轴的值)。
对于三元图,最终的返回值格式是:[x,y,z],第一个位置返回的将会是 X 的值(即底部坐标轴的值),第二个位置返回将会是 Y 的值(即左侧坐标轴的值),第三个位置返回将会是 Z 的值(即右侧坐标轴的值)。
指南编写
指南的编写也是重要的一环,可以快速让其他使用图解模板的科研人员了解,底图的基础信息和使用。
如下图所示位置进行指南编写。我们提供了一些简单的工具栏功能可以满足常规状态下的图解指南编写。当然你也可以通过右侧的Office word来打开图解指南文件进行编写,以实现更多支持的格式和功能。
需要注意的是:只有在确认进入编辑模式后,才会被允许在图解指南面板中编辑内容。

对于指南的编写格式,我们建议以如下的格式为标准:
- 简介:负责介绍底图的一些基础概念和作用。帮助用户快速了解底图。
- 数据格式:负责规定输入的数据格式是什么,即输入的数据列标题应该是什么才能合法读取对应的数据。
- 参考文献:关于编写这个底图及其相关内容所参考的内容。
- 贡献者:参与该底图的相关人员名称或者昵称,这取决于你的兴趣,甚至可以放上你的个人网站,这完全是被鼓励的。
多语言
多语言的设置,我们设定了两种方式:
第一种是直接通过绘图功能栏,里面的切换语言,实现语言切换。这样在第二种语言下,可以设定各自的多语言内容。

第二种方法是:利用我们的主页小组件,我们提供了多语言组件以方便模板的多语言话。
第三种方法是:直接编辑图解模板的源文件。
这些方法有待编写.....
Some functions may not yet be fully implemented; we are working to improve them to provide a better user experience. ✨